package com.dcy.znoa.domain.attendance;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@TableName("att_record")//att_record 员工考勤原始记录表
public class AttRecord {

    @TableId(type = IdType.AUTO, value = "record_id")
    Long recordId;//记录ID

    @TableField("oper_id")
    Long operId;

    @TableField
    Long compId;//企业ID

    @TableField("record_type")
    Integer recordType;//打卡类型，1为上班，2为下班

    @TableField("hit_type")
    Integer hitType;//打卡方式，1为手机，2为刷卡（设备打卡）

    @TableField("record_time")
    Date recordTime;//打卡时间
    /**
     * 打卡时间状态
     * 0 打卡正常
     * 1 有申请（不用打卡）
     * 2 未按时（上班时为迟到，下班时为早退）
     * 3 未打卡
     * PS：请假、出差、外勤如不需要打卡的情况下在本表中不显示。
     * 出差和外勤需要打卡时在本表中为打卡异常
     */
    @TableField("time_status")
    Integer timeStatus;
    /**
     * 打卡地点状态
     * 0 打卡正常
     * 1 有申请（不用打卡）
     * 2 地点异常
     * 3 未打卡
     * PS：请假、出差、外勤如不需要打卡的情况下在本表中不显示。
     * 出差和外勤需要打卡时在本表中为打卡异常
     */
    @TableField("add_status")
    Integer addStatus;

    @TableField("address")
    String address;//打卡地点

    @TableField("longitude")
    String longitude;//经度

    @TableField("latitude")
    String latitude;//维度

    @TableField("att_time")
    Date attTime;//班次时间，只有年月日有效

    //未打卡、申请生成  专用构造函数
    public AttRecord(Long operId, Long compId, Integer recordType, Integer timeStatus, Integer addStatus, Date attTime) {
        this.operId = operId;
        this.compId = compId;
        this.recordType = recordType;
//        this.timeStatus = 9;
//        this.addStatus = 9;
        this.timeStatus = timeStatus;
        this.addStatus = addStatus;
        this.attTime = attTime;
    }

}
